---
title: 负载均衡
---

服务调用是根据负载均衡的规则，从 Nacos 获取的服务列表中选取服务调用的目标地址。

## 为什么需要负载均衡

为了避免部分服务器压力过大。将访问流量分散到集群的各个服务器上，这就是负载均衡技术。

负载均衡有两大门派， 服务端负载均衡和客户端负载均衡。

## 服务端负载均衡
服务端负载均衡，就是在服务集群内部设置一个中心化负载均衡器，比如 API Gateway 服务。发起服务调用的时候，服务请求并不直接发向目标服务器，而是发给这个全局负载均衡器，它在根据配置的负载均衡策略将请求转发到目标服务。

服务端负载均衡的劣势也很明显。
1. **网络消耗**：
2. **复杂度和故障度提升**。

## 客户端负载均衡
Spring Cloud Loadbalance 采用了客户端负载均衡技术，每个发起服务调用的客户端都存有完整的目标服务地址列表，根据配置的负载均衡策略，由客户端自己决定向那台服务器发起调用。

1. 网络开销小
2. 配置灵活

客户端负载均衡技术往往需要依赖服务发现技术来获取服务列表。通过服务发现获取服务列表，然后使用负载均衡器选出目标服务器。



